// pages/enrollment/consultation.js
const app = getApp();
const http = require('../../utils/http');

Page({

  /**
   * 页面的初始数据
   */
  data: {
    // 当前激活的选项卡
    activeTab: 'contact',
    
    // 联系方式信息
    contactInfo: {
      phone: '0531-12345678',
      address: '山东省济南市历城区山东劳动职业技术学院招生办公室',
      email: 'zsb@sdldjsxy.edu.cn',
      workTime: '周一至周五 8:30-17:30',
      qrcodes: [
        {
          title: '官方微信',
          url: '../../static/images/qrcode/wechat.jpg'
        },
        {
          title: '官方微博',
          url: '../../static/images/qrcode/weibo.jpg'
        }
      ],
      campuses: [
        {
          name: '主校区',
          address: '山东省济南市历城区山东劳动职业技术学院',
          mapImage: '../../static/images/campus/main.jpg',
          latitude: 36.681261,
          longitude: 117.132482
        },
        {
          name: '南校区',
          address: '山东省济南市历下区山东劳动职业技术学院南校区',
          mapImage: '../../static/images/campus/south.jpg',
          latitude: 36.651261,
          longitude: 117.122482
        }
      ]
    },
    
    // 常见问题列表
    faqs: [
      {
        question: '学校有哪些专业？',
        answer: '我校设有计算机科学与技术、机械工程、电子信息工程、会计学、市场营销、护理学等多个专业。具体专业设置请查看招生专业页面。',
        expanded: false
      },
      {
        question: '学费是多少？',
        answer: '普通本科专业学费约为4000-6000元/年，高职高专专业学费约为3500-5500元/年，艺术类专业学费约为8000-12000元/年。具体收费标准以当年招生简章为准。',
        expanded: false
      },
      {
        question: '学校有哪些奖学金？',
        answer: '学校设有国家奖学金、国家励志奖学金、国家助学金、校级奖学金等多种奖助学金，此外还有勤工助学岗位、困难补助等多种资助方式，确保每一位学生都能安心学习。',
        expanded: false
      },
      {
        question: '学校住宿条件如何？',
        answer: '学校宿舍为4-6人间，配有独立卫生间、热水器、空调、书桌、衣柜等基本设施。宿舍区有洗衣房、开水房等公共服务设施，环境整洁舒适。',
        expanded: false
      },
      {
        question: '毕业后就业情况如何？',
        answer: '我校近三年平均就业率保持在95%以上，多数专业就业率达到98%。学校与多家知名企业建立了稳定的合作关系，为学生提供充足的实习和就业机会。',
        expanded: false
      }
    ],
    
    // 表单数据
    formData: {
      name: '',
      phone: '',
      majorIndex: -1,
      content: ''
    },
    
    // 专业选项
    majorOptions: [],
    
    // 是否显示成功弹窗
    showSuccessModal: false
  },

  /**
   * 切换选项卡
   */
  switchTab(e) {
    const tab = e.currentTarget.dataset.tab;
    this.setData({
      activeTab: tab
    });
    
    // 如果切换到"在线咨询"选项卡，加载专业选项
    if (tab === 'form' && this.data.majorOptions.length === 0) {
      this.loadMajorOptions();
    }
  },
  
  /**
   * 加载专业选项
   */
  loadMajorOptions() {
    wx.showLoading({
      title: '加载中...',
    });
    
    http.get('/api/enrollment/majors')
      .then(res => {
        if (res.data) {
          this.setData({
            majorOptions: res.data
          });
        }
      })
      .catch(error => {
        console.error('获取专业列表失败:', error);
        wx.showToast({
          title: '获取专业列表失败',
          icon: 'none'
        });
      })
      .finally(() => {
        wx.hideLoading();
      });
  },
  
  /**
   * 专业选择变更
   */
  majorChange(e) {
    this.setData({
      'formData.majorIndex': parseInt(e.detail.value)
    });
  },
  
  /**
   * 拨打电话
   */
  callPhone(e) {
    const phone = e.currentTarget.dataset.phone;
    wx.makePhoneCall({
      phoneNumber: phone
    });
  },
  
  /**
   * 复制邮箱
   */
  copyEmail(e) {
    const email = e.currentTarget.dataset.email;
    wx.setClipboardData({
      data: email,
      success: () => {
        wx.showToast({
          title: '邮箱已复制',
          icon: 'success'
        });
      }
    });
  },
  
  /**
   * 打开地图位置
   */
  openLocation(e) {
    const location = e.currentTarget.dataset.location;
    wx.openLocation({
      latitude: location.latitude,
      longitude: location.longitude,
      name: location.name,
      address: location.address,
      scale: 18
    });
  },
  
  /**
   * 预览图片
   */
  previewImage(e) {
    const url = e.currentTarget.dataset.url;
    wx.previewImage({
      urls: [url],
      current: url
    });
  },
  
  /**
   * 切换FAQ展开状态
   */
  toggleFaq(e) {
    const index = e.currentTarget.dataset.index;
    const key = `faqs[${index}].expanded`;
    this.setData({
      [key]: !this.data.faqs[index].expanded
    });
  },
  
  /**
   * 提交咨询
   */
  submitConsultation(e) {
    const formValues = e.detail.value;
    const formData = {
      ...this.data.formData,
      ...formValues
    };
    
    // 表单验证
    if (!this.validateForm(formData)) {
      return;
    }
    
    wx.showLoading({
      title: '提交中...',
    });
    
    // 构建提交的数据
    const consultationData = {
      name: formData.name,
      phone: formData.phone,
      majorId: formData.majorIndex >= 0 ? this.data.majorOptions[formData.majorIndex].id : null,
      content: formData.content
    };
    
    // 模拟提交成功
    setTimeout(() => {
      wx.hideLoading();
      this.setData({
        showSuccessModal: true
      });
      
      // 实际项目中应该使用以下代码提交到后端
      // http.post('/api/enrollment/consultation', consultationData)
      //   .then(res => {
      //     this.setData({
      //       showSuccessModal: true
      //     });
      //   })
      //   .catch(error => {
      //     console.error('提交咨询失败:', error);
      //     wx.showToast({
      //       title: '提交失败，请稍后重试',
      //       icon: 'none'
      //     });
      //   })
      //   .finally(() => {
      //     wx.hideLoading();
      //   });
    }, 1500);
  },
  
  /**
   * 表单验证
   */
  validateForm(formData) {
    if (!formData.name.trim()) {
      wx.showToast({
        title: '请输入姓名',
        icon: 'none'
      });
      return false;
    }
    
    if (!formData.phone.trim()) {
      wx.showToast({
        title: '请输入手机号',
        icon: 'none'
      });
      return false;
    }
    
    if (!/^1[3-9]\d{9}$/.test(formData.phone)) {
      wx.showToast({
        title: '手机号格式不正确',
        icon: 'none'
      });
      return false;
    }
    
    if (!formData.content.trim()) {
      wx.showToast({
        title: '请输入咨询内容',
        icon: 'none'
      });
      return false;
    }
    
    return true;
  },
  
  /**
   * 关闭成功弹窗
   */
  closeSuccessModal() {
    this.setData({
      showSuccessModal: false,
      // 重置表单数据
      formData: {
        name: '',
        phone: '',
        majorIndex: -1,
        content: ''
      }
    });
  },

  /**
   * 生命周期函数--监听页面加载
   */
  onLoad(options) {
    // 如果有传入的选项卡参数，切换到对应选项卡
    if (options.tab && ['contact', 'faq', 'form'].includes(options.tab)) {
      this.setData({
        activeTab: options.tab
      });
      
      // 如果切换到"在线咨询"选项卡，加载专业选项
      if (options.tab === 'form') {
        this.loadMajorOptions();
      }
    }
    
    // 如果有传入的专业ID，预选中对应专业
    if (options.majorId) {
      this.setData({
        activeTab: 'form'
      });
      
      // 加载专业选项
      this.loadMajorOptions();
      
      // 延迟设置专业索引，确保专业选项已加载
      setTimeout(() => {
        const majorId = parseInt(options.majorId);
        const index = this.data.majorOptions.findIndex(item => item.id === majorId);
        if (index >= 0) {
          this.setData({
            'formData.majorIndex': index
          });
        }
      }, 1000);
    }
  },

  /**
   * 生命周期函数--监听页面初次渲染完成
   */
  onReady() {

  },

  /**
   * 生命周期函数--监听页面显示
   */
  onShow() {
    // 获取用户信息，自动填充表单
    const userInfo = wx.getStorageSync('userInfo');
    if (userInfo) {
      this.setData({
        'formData.name': userInfo.name || '',
        'formData.phone': userInfo.phone || ''
      });
    }
  },

  /**
   * 生命周期函数--监听页面隐藏
   */
  onHide() {

  },

  /**
   * 生命周期函数--监听页面卸载
   */
  onUnload() {

  },

  /**
   * 页面相关事件处理函数--监听用户下拉动作
   */
  onPullDownRefresh() {

  },

  /**
   * 页面上拉触底事件的处理函数
   */
  onReachBottom() {

  },

  /**
   * 用户点击右上角分享
   */
  onShareAppMessage() {
    return {
      title: '山东劳动职业技术学院招生咨询',
      path: '/pages/enrollment/consultation'
    };
  }
})